home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-06-03 | 16.0 KB | 427 lines | [TEXT/MPS ] |
- VoodooMonkey Change History (edited for external release)
- Mike Lockwood
- October 28, 1993
-
-
- 1.0d23 Changes
-
- Put support for the AOCE Process Manager under System 7.1, reversing a change
- in 1.0d22. This allows DebuggerINIT to be compatible with the Drag Enabler
- extension for System 7.1, which comes with the Drag Manager and Powerbook File Assistant.
-
- Added support for A/UX 3.0.1 and another A/UX-like operating system.
-
- Fixed a bug that occured when stepping over a function in an application's main
- routine, when the main routine does not have a LINK instruction.
-
- Added support for a non-standard jump table format, which is generated by a certain
- non-MPW linker.
-
- Fixed a problem that occured when you tried to enter the low-level debugger and
- the PC is at a breakpoint. After getting the dialog telling you to clear the
- breakpoint and clearing the breakpoint, the dialog would keep coming up each time
- you tried to enter the low-level debugger, even though you cleared the breakpoint.
-
-
- 1.0d22 Changes
-
- Fixed an incompatibility between System 7 Pro and DebuggerINIT.
-
- Removed support for AOCE under System 7.1. Older AOCEs ran on top of System 7.1,
- but it now ships with the System 7.1.1 System file.
-
- Fixed a case sensitivity problem that occured when a Sym file was renamed and
- the "SYM" suffix was not all upper cased.
-
-
- 1.0d21 Changes
-
- Fixed an incompatibility between DebuggerINIT and Thread Manager 1.2. Under
- version 1.2, you could not open a stack crawl for an inactive thread!
- This is because one of the Thread Manager data structures changed between
- 1.1 and 1.2. As a result:
-
- ••••• VoodooMonkey now only supports Thread Manager 1.2 !!! •••••
-
- Of course, you can still use VoodooMonkey without the Thread Manager installed.
- If you have Thread Manager 1.1 installed, VoodooMonkey will work, but thread
- specific features will be disabled
-
- Reenabled the MacApp object inspector. This had been disabled in previous
- releases, because it required changes in MacApp after 3.0.1. These changes
- just resurfaced in MacApp 3.1a1. To use the object inspector, you must build
- your MacApp 3.1 application with the -Inspector option.
-
- Fixed a few crashing bugs.
-
- Fixed a bug that caused a circular display of "Could not complete your request
- because of a program error" dialogs.
-
-
- 1.0d20 Changes
-
- Added support for debugging ASLM shared libraries. I tested this with
- ASLM 1.1b7, but it will probably work with ASLM 1.0 as well.
-
- Variable windows now close automatically when the variable goes out of scope.
- This avoids the slowness that occurs when stepping and out of scope variable
- windows are open. In SourceBug, variable windows stay open because they can
- come back in scope when you step back into the function the variable is from,
- but this never seemed to work in VoodooMonkey.
-
- When stepping, the stack crawl window is no longer brought infront of variable
- windows. This allows you watch variable values change more easily while you
- are stepping.
-
- Fixed a bug resulting in occasional crashes in the DebuggerINIT when you stop
- debugging a program.
-
- Stripped out references to secret Apple projects from this document, so it
- could be released outside of Apple.
-
-
- 1.0d19 Changes
-
- Added support for displaying and editing variables that contain C bitfields.
-
- Removed a bogus DebugStr that said "wrong version of the Thread Manager".
- This message would sometimes occur if a program crashes badly, and ExitToShell
- (either MacsBug "es" or the VoodooMonkey's Kill command) fails to kill the
- process.
-
-
- 1.0d18 Changes
-
- Fixed a freak incompatibility between DebuggerINIT 1.0d17 and the (almost)
- final Thread Manager. Quitting applications is now safe practice.
-
-
- 1.0d17 Changes
-
- Fixed a bug that sometimes prevented disassembling code in the browswer
- for an application that has not been launched yet.
-
- The DebuggerINIT now disables the Thread Manager's scheduler when it is
- handling events or exceptions. This is done to avoid some reentrancy
- problems that might occur, like a preemtive thread creating a new thread
- while the DebuggerINIT is handling a breakpoint.
-
- The "Clear All Breakpoints" command now clears all breakpoints in all
- programs being debugged. This decision clears up ambiguity when debugging
- with multiple sym files for one process, or multiple processes with one
- Sym file
-
- VoodooMonkey no longer handles breakpoints or exceptions that occur in
- preemptive threads. Breakpoints are ignored, and exceptions go to the
- low-level debugger. This is for your own protection, since it is not
- safe to switch to another process in a preemtive thread.
-
- Choosing "Open Process Browser", "Show Registers for…" or
- "Show FPU Registers for…" no longer creates a second window, if a window
- is already open.
-
- The log window is now removed from the windows menu when it is closed.
-
- The "Show FPU Registers" menu item is now disabled if your machine doesn't
- have an FPU.
-
- VoodooMonkey now prevents you from switching to the low-level debugger if
- the PC is at a breakpoint. This restriction is added because the DebuggerINIT
- has no way to restore the breakpoint after stepping past it if you are in
- MacsBug or TMON. The user now must clear or step past the breakpoint before
- switching to the low-level debugger.
-
- VoodooMonkey now immediately clears the stack crawl when the process resumes
- execution.
-
-
- 1.0d16 Changes
-
- Revved to another change in the Thread Manager.
- ••••• VoodooMonkey now requires Thread Manager 1.0b3 or later!!! •••••
-
- VoodooMonkey is now compatible with the special AOCE Process Manager.
-
- You can now copy text from the source or assembler view, or the log window.
-
- The Log Window is now working (it had been in hibernation since the SourceBug days).
-
- Execution timing information is now displayed in the log window, rather
- than a modal dialog.
-
- Fixed a problem handling SysBreakStr and SysBreakFunc when they are called
- by a process that is not being debugged.
-
- Fixed a problem that prevented opening stack crawl windows for some threads
- after targeting an already running threaded application.
-
-
- 1.0d15 Changes
-
- Cleaned up and tweaked the source so VoodooMonkey and DebuggerINIT would
- compile with Symantec's SCpp 1.0b2. However, due to a code generation bug
- I ran into, I'm still building with MPW CFront.
-
-
- 1.0d14 Changes
-
- (Hopefully) fixed an occasional crash in the stack crawl for multithreaded
- applications.
-
- Sped up opening views of very large functions.
-
- Moved the grow box back to the corner of the window, instead of inset within
- the bottom right pane.
-
-
- 1.0d13 Changes
-
- When you target a process, either with the Target menu command or by
- entering via TMON, VoodooMonkey will try to open the Sym file for the
- process if it isn't already open.
-
- Fixed a problem that occured when debugging applications without SIZE
- resources, or didn't have the canBackground bit set. To avoid the
- flashing effect, VoodooMonkey does not constantly switch the program
- you are debugging to the front when you are stepping. However, if
- the program does not background, the program does not wake up, and
- the step never completes. Now, if the canBackground is not set,
- VoodooMonkey will force the program to the front.
-
- Revved to a recent change in the Thread Manager. The DebuggerINIT works
- works with Thread Manager 1.0a3 or later.
-
- Fixed some bugs in processing events received from the DebuggerINIT.
- Stack crawl windows now close when the associated thread is terminated,
- and the object inspector is now being notified when objects are freed.
-
- The edit text in the "Evaluate…" no longer contains garbage characters.
-
-
- 1.0d12 Changes
-
- Added support for modifying variable values in variable windows.
- Just click on the variable value (to the right of the "=" sign) to
- edit in place. The view as options control the format in which the
- variable is edited. This feature has not been heavily tested yet,
- so you might run into a few kinks here and there.
-
- WARNING: Beware when editing StringHandles. VoodooMonkey does not
- prevent you from changing a string to a longer string, which could
- result in writing beyond the end of the block and trashing the heap.
-
- The view as menu items now have a check to indicate how the selected node
- in the memory view is being displayed.
-
- Changed the name of the "View as…" menu item to "Coerce to type…" to
- make it more obvious what this feature does.
-
- Fixed a problem displaying unions contained in structs. The offset into
- the struct was not being calculated properly, resulting in wrong values.
-
- "Evaluate this…" now has Command-T as a command key equivalent.
-
- Process Browser enhancements:
- • Targeted processes are now shown in bold.
- • For a suspended process, the current thread is shown in bold.
- • Processes are now sorted by name.
- • Threads are now sorted by ThreadID.
-
- Added a new about box.
-
-
- 1.0d11 Changes
-
- The DebuggerINIT is now compatible with the 1.0a3 version of the
- Thread Manager. The DebuggerINIT is no longer compatible with versions
- before 1.0a3.
-
- Fixed some bugs related to debugging multi-threaded applications.
-
- The DebuggerINIT now protects itself from bus errors when doing a
- stack crawl. This reduces the possibility of VoodooMonkey crashing
- when debugging an application that trashed its own stack.
-
- Added an execution timing feature (thanks to code provided by John Glenn).
- If the "Time Execution" menu item is turned on in the "Control" menu,
- VoodooMonkey will time execution from the time you "Run" until you hit
- the next breakpoint. You can also time execution using the "Go Until"
- feature, (double clicking on a diamond is "Go Until"). According to
- John, this feature is accurate to within approximately 20 microseconds.
- Since tracing greatly affects execution time, "Time Execution" does not
- work with stepping. It only works with "Run" or "Go Until".
-
-
- 1.0d10 Changes
-
- VoodooMonkey now saves window positions for Browser, Stack Crawl,
- and Process Browser windows.
-
- You can now drag the PC arrow within a function to change the PC.
- VoodooMonkey does not adjust A6 or the SP, so be careful moving the PC
- over instructions that change the stack.
-
- Changing register values in the register window now works properly.
-
- Fixed bug in the stack crawl code that caused sporadic problems when
- stepping out of a function.
-
-
- 1.0d9 Changes
-
- Fixed a few crashing bugs.
-
- invalid pointers now display as "INVALID".
-
- Menu commands for the register windows are now in the Process menu
- instead of the Edit menustays in Windows menu
-
- You can now evaluate registers from the disassembly view, by selecting
- the register name (like "A4") and selecting the "Evaluate" command.
- The register will appear as a long, but can be coerced to another type
- using the "View as…" command.
-
- File names are now sorted properly in the browser.
-
- VoodooMonkey's version number now appears in the about box.
-
-
- 1.0d8 Changes
-
- Type casting is now available. You can select any node in a variable window
- and use the "View As…" menu command to coerce it to any type that appears
- in the Sym file.
-
- VoodooMonkey is now able to evaluate most register based variables that
- are in activations further up in the stack crawl. This is heuristic based,
- so it might not always work properly.
-
- Merged "Launch" and "Resume" menu commands into "Run" (just like SourceBug).
- "Run" and "Kill" now work from the browser, and stepping works when a variable
- window is in front of the stack crawl.
-
- Fixed a clipping problem in variable windows that occured when the value of
- the variable changed or a "View As" command was done by the user.
-
- Variable windows now display "out of scope" when you step out of the
- scope the variable is declared in. If you go back in that scope,
- the window will start displaying the variable again.
-
- Fixed a bug that caused autotargeting not to work for MacApp programs.
-
-
- 1.0d7 Changes
-
- VoodooMonkey now automatically targets running processes if it hits a breakpoint
- in a non-targeted process. Now to target a running app, just open the Sym file
- and set some breakpoints. The process will be targeted when the breakpoint is hit,
- so you no longer have to go to the Process Browser to target the process.
-
- Auto targeting also works if you enter VoodooMonkey from TMON, using the
- "SourceBug macro for TMON Professional" that ships with SourceBug.
-
- Kludged around a problem in CFront that caused some files to be displayed in the
- browser as "C".
-
- Fixed a problem that occured when debugging standalone code resources in 24 bit addressing.
-
- C unions and Pascal variant records are now displayed properly.
-
- Pascal subrange variables are now displayed properly.
-
- Enumerated types are now displayed properly. However, the MPW C compiler doesn't
- generate symbolics for enums, so you will only notice this improvement in Pascal.
-
- Arrays are now displayed properly. You can expand and collapse arrays using the
- outline triangles, and you can now display arrays of structs, or arrays of other
- complex types.
-
-
- 1.0d6 Changes
-
- VoodooMonkey no longer asks you for a the executable, if it can find it in the
- same directory as the Sym file. If your Sym file is called Banana.SYM,
- VoodooMonkey will look for Banana in the same directory. If it is not found,
- VoodooMonkey will ask for the location of Banana.
-
- Fixed a lot of memory leaks.
-
- Fixed a bug in the MPW Unmangle.o library that caused VoodooMonkey to go into an
- infinite loop when unmangling the names of certain functions.
-
- Fixed a bug in the stack crawl that occured when debugging recursive functions.
- The pc was not properly updating when changing between activations of the same
- recursive function.
-
- Fixed a bug that caused 1 or 2 byte register based variables to display the
- wrong value.
-
- The horizontal scroll bars in the source code panes of the browser and stack crawl
- windows now work.
-
- Breakpoints no longer show up as "TRAP #5" in the disassembly.
-
- The disassembler now can disassemble routines in segments that aren't loaded or in
- applications that are not running. ReadPartialResource is used, so the disassembler
- does not affect the heap of the program you are debugging.
-
- Fixed the Untarget <process> command.
-
- Closing the stack crawl for a running process now untargets the process.
- Closing the stack crawl for a suspended process (as before) kills the process,
- after asking "are you sure…".
- For threaded programs, only closing the stack crawl for the main thread causes the
- process to be untargeted or killed.
-
-
- 1.0d5 Changes
-
- Fixed a bug in runtime typing of HandleObjects in programs that have both
- HandleObjects and PascalObjects.
-
-
- 1.0d4 Changes
-
- Put in support for dynamically typing PascalObjects at runtime.
-
- VoodooMonkey now fixes up null type references in the type information.
- For example, sometimes when viewing a struct that has a RgnHandle as a field,
- expanding or double clicking on the RgnHandle didn't work. Now it does!
-
- Launching an application from the browser after it was already running used
- to confuse VoodooMonkey. Now, Launch is grayed out if the application
- is already running.
-
- Fixed a bug that caused a crash when closing the browser with a
- variable window open.
-
- 1.0d3 Changes
-
- Added a heuristic for properly evaluating handle based objects. When
- you forward declare a class in C++, CFront does not know the class is
- handle based, and generates symbolics for a pointer based class.
- A heuristic is now used to detect that a pointer to a record is really a
- handle, and an extra dereference is added.
-
- Fixed a bug that prevented you from targeting a running process.
- (To target a running process, open the Sym file for the process.
- Then select the process in the Process Browser and either double-click
- on it, or choose "Target <process name>" in the "Process" menu.
-
- Added a cheesy "View As" mechanism, similar to SourceBug.
-
- Fixed a bug that occured if you closed the browser before the stack crawl
- window.
-
- Rebuilt the DebuggerINIT with newer Thread Manager headers. This fixed
- a few problems debugging threads.
-
-
- 1.0d2 Changes
-
- Fixed some annoying bugs
-
- Disabled some features that weren't quite working
-
- Added a "Windows" menu
-